package com.gitee.faster.webdav.kernel.resource;

import com.gitee.faster.webdav.kernel.model.Owner;

import java.util.Date;

/**
 * 文件资源
 *
 * @author hongda.li
 */
public interface Resource {

    /**
     * 获取归属者
     *
     * @return 归属者
     */
    Owner getOwner();

    /**
     * 资源大小
     * 单位字节
     *
     * @return 大小
     */
    long length();

    /**
     * 是否为根目录
     *
     * @return 根目录
     */
    boolean isRoot();

    /**
     * 资源是否存在
     *
     * @return true / false
     */
    boolean exists();

    /**
     * 资源是否属于文件
     *
     * @return true / false
     */
    boolean isFile();

    /**
     * 资源是否属于目录
     *
     * @return true / false
     */
    boolean isDirectory();

    /**
     * 获取资源名称
     *
     * @return true / false
     */
    String getName();

    /**
     * 最近修改时间
     *
     * @return 时间戳
     */
    Date lastModified();

    /**
     * 获取引用路径
     *
     * @return 路径
     */
    String requestPath();
}
